home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / tex / macros / source / base / usrguide.tex / node18_mn.html < prev    next >
Text File  |  1995-03-15  |  3KB  |  88 lines

  1.  
  2. <H2><A ID="SECTION00044000000000000000">
  3. Definitions</A>
  4. </H2>
  5.  
  6. In L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X, commands can have both mandatory and optional arguments,
  7. for example in:
  8. <PRE><tex2html_verbatim_mark>verbatim45#</PRE>
  9. the |11pt| argument is optional, whereas the |article| class name is
  10. mandatory.
  11.  
  12. In L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X~2.09 users could define commands with arguments, but these
  13. had to be mandatory arguments.  With L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X2<SUB>e</SUB>, users can now define
  14. commands and environments which also have one optional argument.
  15.  
  16. <BR>
  17. <tex2html_image_mark>#decl247#
  18. <BR>
  19.  
  20. These commands have a new, second, optional argument; this is used for
  21. defining commands which themselves take one optional argument.  This
  22. new argument is best introduced by means of a simple (and hence not
  23. very practical) example:
  24. <PRE><tex2html_verbatim_mark>verbatim46#</PRE>
  25. This defines || to be a command with two arguments, referred
  26. to as |#1| and |#2| in the <#259#>definition<#259#>---nothing new so far.  But
  27. by adding a second optional argument to this | | (the
  28. |[YYY]|) the first argument (|#1|) of the newly defined command
  29. || is made optional with its default value being |YYY|.
  30.  
  31. Thus the usage of || is either:
  32. <PRE><tex2html_verbatim_mark>verbatim47#</PRE>
  33. which prints:
  34. <BLOCKQUOTE>
  35. Mandatory arg: BBB;
  36.    Optional arg: YYY.
  37.  
  38. </BLOCKQUOTE>
  39. or:
  40. <PRE><tex2html_verbatim_mark>verbatim48#</PRE>
  41. which prints:
  42. <BLOCKQUOTE>
  43. Mandatory arg: AAA;
  44.    Optional arg: XXX.
  45.  
  46. </BLOCKQUOTE>
  47.  
  48. The default value of the optional argument is <TT>YYY</TT>.
  49. This value is specified as the <#269#>default<#269#> argument of the
  50. | | that created ||.
  51.  
  52. As another more useful example, the definition:
  53. <PRE><tex2html_verbatim_mark>verbatim49#</PRE>
  54. means that the input |<tex2html_image_mark>#tex2html_wrap_inline1995#<I>a</I>| produces
  55. the formula <tex2html_verbatim_mark>#math68#{<I>a</I><SUB>0</SUB>,…, <I>a</I><SUB>n</SUB>},
  56. whereas the input |<tex2html_verbatim_mark>#math69#<tex2html_image_mark>#tex2html_wrap_inline1998#[<I>k</I>]<I>x</I>| produces the formula
  57. <tex2html_verbatim_mark>#math70#{<I>x</I><SUB>0</SUB>,…, <I>x</I><SUB>k</SUB>}.
  58.  
  59. In summary, the command:
  60. <BLOCKQUOTE>
  61. | | <#279#>cmd<#279#> <#280#>num<#280#> <#281#>default<#281#> <#282#>definition<#282#>
  62.  
  63. </BLOCKQUOTE>
  64. defines <#284#>cmd<#284#> to be a command with <#285#>num<#285#> arguments, the first of
  65. which is optional and has default value <#286#>default<#286#>.
  66.  
  67. Note that there can only be one optional argument but, as before,
  68. there can be up to nine arguments in total.
  69.  
  70. <BR>
  71. <tex2html_image_mark>#decl287#
  72. <BR>
  73. L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X2<SUB>e</SUB> also supports the creation of environments that have one
  74. optional argument.  Thus the syntax of these two commands has
  75. been extended in the same way as that of | |.
  76.  
  77. <BR>
  78. <tex2html_image_mark>#decl299#
  79. <BR>
  80. This takes the same arguments as | |. If <#305#>cmd<#305#> is already
  81. defined then the existing definition is kept; but if it is currently
  82. undefined then the effect of |is to define <#306#>cmd<#306#>
  83. just as if | | had been used.
  84.  
  85. <BR>
  86. <tex2html_image_mark>#NEWfeature307#
  87. <BR>
  88.